clear all 

use "data\in\elbileiere2019_maalepunkt2019_wattmete2018.dta", clear 
keep Navn Merke* Modell* Måle* Modår* mergedon 
keep if inlist(mergedon, "Navn", "name1Adresse1")
drop mergedon 
g n = _n 
reshape long Merke Modell Målepunktnr Modår, i(n)
drop n _j 
drop if Målepunktnr == . 
destring Modår, g(year)
merge m:1 Merke Modell Modår using "data\in\elbiltyper_Modell_Modår_Antall_Batterikapasitet_kWh.dta", keepusing(Batterikapasitet) nogen 
replace Batterikapasitet = 16 if Batterikapasitet == . // assume missing is small battery 
su Batterikapasitet, detail 
g byte abovemedianbattery = (Batterikapasitet > `r(p50)')
g byte EVlarge = abovemedianbattery 
drop year 
tab Merke EVlarge, m 
keep Målepunktnr EVlarge Batterikapasitet
rename Målepunktnr maalepktnr
gsort maalepktnr -Batterikapasitet // keep larges EV battery in household 
keep if maalepktnr != maalepktnr[_n-1]
tempfile EVlarge
save `EVlarge', replace 

use "data\out\estsample.dta", clear
merge m:1 maalepktnr using `EVlarge', keep(master match) nogen 
tab  EVlarge elcar, m 
replace EVlarge = 0 if EVlarge == . | (elcar == 0 & EVlarge == -1)

g byte PeakxEvent = Peak*EventDay
g byte ShoulderxEvent = shoulder*EventDay


ivreghdfe lnforbruk c.temp##c.temp##c.temp temp_* Peak PeakxEvent ShoulderxEvent Peakelcar shoulder shoulderelcar ///
  (Effektpris EffektprisNonPeak Effektprisnext EffektprisNonPeaknext Effektpriselcar EffektprisNonPeakelcar Effektprisnextelcar EffektprisNonPeaknextelcar Effektprisshoulder Effektprisshoulderelcar =  TPE TNPE TPnextdays TNPnextdays TPEelcar TNPEelcar TPnextdayselcar TNPnextdayselcar TsE TsEelcar) /// 
  if elcar == 0 | (elcar == 1 & EVlarge == 1), absorb(maalepktnr dato) cluster(maalepktnr)
est store IV5large 
estadd ysumm  

ivreghdfe lnforbruk c.temp##c.temp##c.temp temp_* Peak PeakxEvent ShoulderxEvent Peakelcar shoulder shoulderelcar ///
  (Effektpris EffektprisNonPeak Effektprisnext EffektprisNonPeaknext Effektpriselcar EffektprisNonPeakelcar Effektprisnextelcar EffektprisNonPeaknextelcar Effektprisshoulder Effektprisshoulderelcar =  TPE TNPE TPnextdays TNPnextdays TPEelcar TNPEelcar TPnextdayselcar TNPnextdayselcar TsE TsEelcar) /// 
  if elcar == 0 | (elcar == 1 & EVlarge == 0), absorb(maalepktnr dato) cluster(maalepktnr)  
est store IV5small
estadd ysumm  

estout IV5large IV5small  using "output\table_C5.txt", replace type ///
  cells(b( fmt(3)) se(par fmt(3)) _star) indicate(temp) /// mlabels(1 2 3 4 5 6 ) collabels(none) legend ///
  order(Effektpris EffektprisNonPeak Effektprisnext EffektprisNonPeaknext Peak PeakxEvent ShoulderxEvent Effektpriselcar EffektprisNonPeakelcar Effektprisnextelcar EffektprisNonPeaknextelcar Peakelcar Effektprisshoulder shoulder Effektprisshoulderelcar shoulderelcar) ///
  varlabels(TPE TP TNPE TNP) starlevels(* 0.10 ** 0.05 *** 0.01) varwidth(26) ///
  stats(ymean r2 N, fmt(3 3 0 0)) style(tex)

  
